package main
import (
	"fmt"
	"time"
)

/**
【1】问题原因:多个协程工作，其中一个协程出现panic，导致程序崩溃
【2】解决办法:利用refer+recover捕获panic进行处理，即使协程出现问题,主线程仍然不受影响可以继续执行，
**/

//输出数字
func printNum() {
	for i := 0; i < 10; i++ {
		fmt.Println(i)
	}
}

// 除法操作
func div() {
	defer func() {
		if err := recover(); err != nil {
			fmt.Println("捕获到异常：", err)
		}
	}()
	num1 := 10
	num2 := 1
	result := num1 / num2
	fmt.Println(result)
}
func main() {

	// 启动两个协程
	go printNum()
	go div()

	time.Sleep(5 * time.Second)
}